Services through public mobile communication networks have exploded in popularity, in recent years. To meet the increased demand for service and for ever more sophisticated features, mobile communication networks are undergoing rapid deployment and upgrades. Network upgrades also have increased the reliability of the mobile communication services. As a result, customers in increasing numbers are adopting mobile communication networks as their primary platform for voice and data services, in some cases, even to the point of abandoning traditional land line telephone service. Likewise wireless devices, such as mobile handsets, wireless smart phones, PDAs, embedded wireless modules, etc., have become advanced in their processing and storage capacities, functionality, and ability to operate across many communication networks including WAN, LAN and PAN and across both terrestrial and satellite based networks. High-end wireless devices, sometimes referred to as “smart phones” or “communicators,” offer a wide area of on-line and off-line capabilities, such as multimedia (e.g. music, videos or the like) downloading via the wireless network and off-line playback. With such advances of the mobile communication network and wireless devices comes increasing complexity of the programming of the devices, which also increases vulnerability to various types of programming faults. This creates a need to seamlessly repair “bugs” and errors on the device with little or no service downtime to the end user.
In order to fix bugs, prevent errors, and fix preexisting errors in wireless devices, service providers started implementing Over-The-Air (“OTA”) systems that allow a user to download firmware and software updates directly to the device. Updates may be downloaded to a wireless device automatically or in response to an end-user initiation, “pull”, such as via a user interface. Service providers, enterprises or end-users may, via a predefined network interface, also “push” updates to the wireless devices. While OTA methods provide enhanced functionality and reliability, they are limited by the ability of a given wireless device to communicate via the mobile communication network in order to download such updates. Also, even if communications are available, OTA updates may not be able to handle all potential faults.
Some programming faults (bugs, errors, viruses or the like) may be so severe as to prevent the wireless device from communicating via the mobile network. As a result, the wireless device may experience an error that prevents wireless device from self-correcting the error via OTA update or the like provided through the mobile communication network by the mechanisms mentioned above. These and other “unrecoverable” errors typically occur as a result of a software malfunction, loss or improper overwrite of access identifier(s) or security keys, a software conflict, or a virus or other mobile malicious software (often referred to as “malware”) that has been downloaded to the wireless device. For example, software downloaded to a wireless device that conflicts with the preexisting software of the wireless device or that is not installed completely may cause an unrecoverable error. Such software may be downloaded by the user of the wireless device from a variety of providers/sources or may even be provided by the service provider via the OTA system described above.
In instances where a wireless device has an “unrecoverable” error or fault in its programming, although it is able to power-on it may not be able communicate through the wireless service(s) offered by the mobile network (e.g. no voice call, no messaging, and no data communications). As a result, the user's only recourse is to acquire a new device or have the existing device repaired. In order to repair the device unfortunately requires a user to physically return the device to the store of purchase, the original equipment manufacturer (“OEM”), or another location that has the capability to service the device. During service, the device may be connected to PC to perform a diagnostic check of the device and determine the type of error. If the error resides in the device programming, such as the “firmware”, the PC will erase preexisting firmware on the device and upload new firmware to the device. Although effective to correct the programming error, such a repair results in significant wireless device downtime and inconvenience to the user.
Hence a need exists for more effective techniques to correct unrecoverable errors in devices, for example, that allow a service provider to seamlessly correct unrecoverable errors and that do not require a user to physically submit the device to service location personnel for servicing and/or that reduce downtime of the wireless device and its use of the mobile communication services.